문서의 임의 삭제는 제재 대상으로, 문서를 삭제하려면 삭제 토론을 진행해야 합니다. 문서 보기문서 삭제토론 인텔 P5 마이크로아키텍처 (문단 편집) == 상세 == P5 마이크로아키텍처는 U-pipe와 V-pipe 2개의 파이프라인을 두어 특정한 명령어 조합에 대해 클럭당 2개의 명령어를 실행할 수 있도록 하였다. (이때 첫번째 명령어는 U-pipe에서, 두번째 명령어는 V-pipe에서 실행된다.) 한 사이클당 하나의 명령어가 실행되는 경우 U-pipe에서 실행되며, U-pipe는 모든 명령어를, V-pipe는 일부 명령어만을 실행할 수 있다. 동시에 실행할 수 있는 명령어의 조합은 다음과 같다: * 대부분의 ALU 명령어 (mov, add, sub, and, or, xor) * 비교 명령어 (cmp, test) * 스택 조작 명령어 (push, pop) * Carry 및 borrow 명령어(adc, sbb 등)는 U pipe에서만 실행될 수 있다. * 접두사가 사용된 명령어의 경우 U pipe에서만 실행될 수 있다. 단, Pentium MMX에서는 0Fh, 66h, 67h 접두사가 사용된 명령어가 V pipe에서 실행될 수 있음 * shift imm 명령어는 U pipe에서만 실행될 수 있다. * fadd, fmul, fld 등 일부 부동소수점 명령어는 U pipe에서만 실행될 수 있다. * call near, jmp near, jcc 등 단순한 control transfer 명령어 및 fxch 명령어가 U pipe에서 실행되는 경우 V pipe를 사용할 수 없다. (이러한 명령어가 V pipe에서 실행되는 경우 동시에 U pipe를 사용할 수 있다.) 동시에 실행할 수 없는 명령어의 조합은 다음과 같다: * CL 레지스터를 shift count로 사용하는 shift 및 rotate 명령어 * mul, div 등 여러 사이클에 걸쳐 실행되는 사칙연산 명령어 * ret, enter, pusha, movs, stos, loopnz 등의 확장된 명령어 * fscale, fldcw, fst 등 일부 부동소수점 명령어 * push, sreg, call far 등 inter-segment 명령어 * 레지스터 의존성(RAW, WAW)이 존재하는 경우. 이때 al, ah 등 8비트 및 16비트 레지스터는 해당하는 32비트 레지스터에 대한 참조로 간주되므로 한 명령어가 al에 값을 쓰고 그 다음 명령어가 ah에 값을 쓰는 경우 eax에 대한 WAW hazard 때문에 동시에 실행될 수 없다. (단, EFLAGS에 대한 WAW 의존성 및 스택 포인터, 조건 코드에 대한 의존성은 예외) * 두 명령어가 동일한 데이터 캐시 뱅크에 접근하는 경우 * (접두사를 제외한) 두 명령어 중 하나가 7바이트를 초과하는 경우. Pentium MMX의 경우 첫 번째 명령어에 대한 제한이 11바이트까지로 완화되었다.저장 버튼을 클릭하면 당신이 기여한 내용을 CC-BY-NC-SA 2.0 KR으로 배포하고,기여한 문서에 대한 하이퍼링크나 URL을 이용하여 저작자 표시를 하는 것으로 충분하다는 데 동의하는 것입니다.이 동의는 철회할 수 없습니다.캡챠저장미리보기